<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div>
    <div id="title">
      <!-- 给每一个标签添加自定义属性来进行判断 -->
      <button data-url="/center">个人中心</button>
      <button data-url="/news">新闻</button>
      <button data-url="/music">音乐</button>
    </div>
    <div id="view"></div>
  </div>
  <script>
    const oBtns = document.querySelectorAll("#title button");
    const oView = document.getElementById("view");
    // 1.首先创建一个路由表,规定了路由的对应信息
    const router = [
      { path: "/center", content: "我的主页我做主" },
      { path: "/news", content: "罗飞暴改奥拉夫" },
      {
        path: "/music",
        content: "雅俗共赏",
      },
    ]
    // 遍历所有的btns,绑定点击事件
    for (var i = 0; i < oBtns.length; i++) {
      oBtns[i].onclick = function () {
        //获取当前路由跳转的按钮上保存的path信息 然后改变地址栏地址的hash值
        location.hash = this.dataset.url;
      };
    }
    // 我们同通过onhashchange事件 监听当前url的hash的变化
    window.onhashchange = function (e) {
      // 在e事件对象拿到当前监听的新的hash地址
      const newURL = e.newURL.split("#")[1]
      // 对路由表的path进行遍历找到和当前hash地址对比 并更新对应的视图
      router.forEach((route) => {
        if (route.path === newURL) {
          //更新视图
          oView.textContent = route.content;
        }
      });
    }
  </script>
</body>

</html>